home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 31 / Commodore_Free_Issue_31_2009_Commodore_Computer_Club.d64 / iv p ojala < prev    next >
Text File  |  2023-02-26  |  10KB  |  357 lines

  1. u
  2.  
  3. *************************************
  4.            Interview with
  5.     Vic20 Coder and Demo Creator
  6. *************************************
  7.  
  8. http://www.cs.tut.fi/{$de}albert/Pu-239/vi
  9. cual-mmix/
  10.  
  11. Q. Please introduce yourself to our
  12. readers
  13.  
  14. A. I'm a 39-year-old embedded
  15. software engineer that does not shy
  16. away from hardware either. I work in
  17. VLSI Solution Oy (
  18. http://www.vlsi.fi/ )developing code
  19. among other things for audio decoder
  20. chips and various applications using
  21. them.
  22.  
  23. Q. How did you become interested in
  24. the VIC-20?
  25.  
  26. A. A friend gave me a VIC20 around
  27. 1989, and I played with it a bit,
  28. converting some C64 fonts to VIC's
  29. 16-line characters. Nothing really
  30. became of it though, because I didn't
  31. have time or great motivation to
  32. really study the operation of the
  33. chips inside the VIC20. My interest
  34. in VIC20 sparked in 1995 when Marko
  35. Mkel and Andreas Boose set out to
  36. find out the ins and outs of the
  37. VIC-I video chip. I had run out of
  38. demo ideas for C64 and was no
  39. graphician or musician so it was
  40. natural to take a step back to VIC20,
  41. the undiscovered demo territory.
  42.  
  43. Q. Was the Vic your first home
  44. computer?
  45.  
  46. The first computer I played with was
  47. a ZX-81 owned by a friend of mine. A
  48. few years later another friend had a
  49. VIC-20 and we created a few basic
  50. programs with it. My first computer
  51. was Sinclair Spectrum 48k. I created
  52. a few BASIC games with it, using
  53. user-definable characters and used a
  54. lot of string operations to make the
  55. games fast enough. At some point I
  56. broke it by fiddling with the
  57. expansion port. The machine visited a
  58. repair shop but never worked very
  59. well after that.
  60.  
  61. After a few years I bought a C64 and
  62. a 1541 drive. I also bought a Handic
  63. 300bps / 1200/75bps modem and called
  64. the few bulletin board systems
  65. available in Finland at that time.
  66. The phone bills made a stop to that
  67. for a long time until the first BBS's
  68. appeared in the Tampere area code.
  69.  
  70. This encouraged me to start my own
  71. BBS Pasbox (imaginative, right?),
  72. which ran my own software on a C64
  73. and a 1581 disk drive. Machine
  74. language subroutines that I wrote
  75. made the BBS faster and better.
  76.  
  77. One of the first and nicest routines
  78. was a TOD clock with calendar that
  79. was automatically updated by the TOD
  80. alarm interrupt at midnight. Leap
  81. years were of course supported. You
  82. could get the time and date in
  83. human-readable form into a string
  84. variable by giving the right SYS
  85. command. You got for example
  86. "21:31.35  Fri 5.1.90".
  87.  
  88. Another nice routine was a line wrap
  89. and hyphenation routine for finish.
  90.  
  91. Fittingly to the theme, another BBS
  92. in Tampere was run on a VIC20, also
  93. with self-made software. We even
  94. created a message transfer protocol
  95. that swapped messages between our
  96. systems. The system was called
  97. Pet-Net and a few other systems also
  98. joined that.
  99.  
  100. On the hardware side I created a
  101. 256kB RAMDISK that stored the
  102. recently read messages so the 1581
  103. drive would not need to spin up so
  104. often. The RAMDISK hooked into the
  105. load and save vectors so it could be
  106. easily used from BASIC programs.
  107.  
  108. In the later years the C64 was
  109. retired from Pasbox service and A500
  110. took the role using a BBS software
  111. named AXsh that looked like a Unix
  112. shell, but with protections so that
  113. you could not run any non-trusted
  114. programs. I even piped Usenet
  115. newsgroup messages from my university
  116. account to the BBS.
  117.  
  118. Q. Have you programmed for any other
  119. Commodore computers (Amiga included)?
  120. If so, how does programming the VIC
  121. compare? i.e., does a lack of
  122. hardware sprites help or hinder
  123.  
  124. A. I never did any demo coding on the
  125. Amiga, just "productivity" like AXsh,
  126. stroke commodity, c1581-handler.
  127.  
  128. VIC20 demo coding compared to coding
  129. on C64 is at its core the same thing:
  130. to use the capabilities at your
  131. disposal in the best possible way.
  132. When working with Vic you are just
  133. much more limited in every way, which
  134. emphasizes good ideas. The lack of
  135. sprites forces you to select ideas
  136. that the machine's good at instead of
  137. trying to make it do something it
  138. does poorly.
  139.  
  140. Q. What is your favourite 8-bit demo
  141. (excluding your own works)?
  142.  
  143. A. I'm an old-school dude and I
  144. appreciate technical over pretty. I
  145. really liked the Think Twice! and
  146. similar demos that showed some
  147. VIC-II trick for the first time or
  148. made good use of it.  There are tons
  149. of demos that are spectacular in
  150. graphics and sound, and I'm quite
  151. amazed by those as well.
  152.  
  153. Q. Can you tell our readers about
  154. VICUAL MMIX
  155. A. VICUAL MMIX is a nine-part demo
  156. for the unexpanded VIC20. New parts
  157. are loaded from disk as the demo
  158. progresses   The demo tries to show
  159. visually interesting effects that
  160. have not been seen on VIC20 before.
  161. Some of the parts are further
  162. developed versions or different takes
  163. on parts seen in my previous VIC20
  164. demos.
  165.  
  166. Q. Is there anything specific behind
  167. "this kind of demo" and "such
  168. effects"?
  169.  
  170. This time I toned down the "use less
  171. known VIC-I features" and "this is
  172. impossible in 5.5kB" and went more in
  173. the direction of keep it simple, use
  174. interesting visual effects and
  175. unusual colour combinations. I also
  176. made the parts roll on much quicker
  177. so that you would not get bored
  178. waiting for the next part. If you
  179. want to watch for longer and see more
  180. pretty colours, you can run the demo
  181. in manual mode.
  182.  
  183. Q. This Demo runs on an Unexpanded
  184. VIC20! What was the main problem
  185. coding the demo apart from lack of
  186. memory?
  187. A. Is that not enough?:-) Well, as I
  188. said before, I'm no musician, so help
  189. from Anders Carlsson was needed to
  190. fill the silence with something you
  191. would listen to wilfully.
  192.  
  193. Q. Why create such a Demo on the Vic?
  194. is it purely because you wanted to
  195. show the machine was capable of such
  196. techniques?
  197.  
  198. A. It's a hobby, coding is fun. And
  199. demo coding on VIC20 is so much
  200. different from what programming I do
  201. every day that it is quite relaxing
  202. as well.
  203.  
  204. Q. Can you tell our readers about
  205. your programming environment and the
  206. tools used to create the demo?
  207.  
  208. A. When I started developing the demo
  209. in 2002-ish, I used A3000 with Cygnus
  210. Editor, dasm, SAS/C, DPaint, and my
  211. c1581-handler to read/write c1581
  212. disks directly on the Amiga. Some
  213. small utilities were written for
  214. previous VIC20 demos and this one. In
  215. 2003 I started using a FreeBSD PC, so
  216. the development environment changed a
  217. bit. I still use dasm, but now with
  218. emacs, gcc, and gimp. I also made use
  219. of Marko Mkel's c2nload that
  220. connects between the PC's serial port
  221. and VIC20's tape port.
  222.  
  223. Q. And is the source code freely
  224. distributable?
  225.  
  226. A. The demo and source code is on the
  227. web freely available and you can give
  228. it to other people. It is intended
  229. for people to learn from.
  230.  
  231. Q. Some readers wonder why
  232. programmers spend such time working
  233. on demos why didn't you create a game
  234. or utility for the Vic?
  235.  
  236. A. I have thought about making a game
  237. for VIC20, but it should not be just
  238. any game. Some originality should be
  239. involved, or at least something not
  240. thought possible with a VIC20. There
  241. are a few utilities of mine for
  242. VIC20. Although not running on a VIC,
  243. pucrunch supports VIC20 and is used
  244. in my VIC20 demos. (That and the
  245. small memory keep the loading times
  246. short.) PuZip has a VIC20 version, so
  247. you can make ZIP archives on your
  248. lovely machine, although you need a
  249. bit of expansion memory.  I have also
  250. released a graphics converter that
  251. creates graphics files run able on a
  252. vic.
  253.  
  254. Q. I personally thought I had "seen
  255. it all" I mean the vic is so limited,
  256. although some feel the limitations
  257. are an aid to creativity, Do you
  258. think there is anything left to
  259. achieve on the VIC-20 now?
  260.  
  261. A. VICUAL MMIX did not push the VIC20
  262. much further than before, so
  263. certainly this is not the end.
  264.  
  265. Q. Would you consider doing a
  266. multi-part 'one-filer' which requires
  267. a RAM expansion? Or any programming
  268. that uses extra RAM? or do you prefer
  269. to utilise the hardware "as is"
  270.  
  271. A. My first VIC20 demo "Vici Iterum
  272. MM" required 16kB expansion RAM. Some
  273. of the parts were original, some just
  274. remakes of old but popular C64
  275. effects. The extra RAM was mainly
  276. used for loading the next part while
  277. the current part was running.
  278.  
  279. There are three reasons why I
  280. switched to using the unexpanded
  281. machine.
  282.  
  283. 1) Requiring memory expansion limits
  284. the audience. Although VICE currently
  285. emulates PAL VIC20 very accurately,
  286. and NTSC VIC20 fairly accurately,
  287. there are still people that want to
  288. run the demos on the actual machine
  289. for one reason or another and they
  290. don't all have expansion memory
  291. cartridges.
  292.  
  293. 2) Expansion memory can not be used
  294. for graphics, because VIC-I can only
  295. see the internal RAM. This limits the
  296. usefulness of the extra RAM.
  297.  
  298. 3) All cool dudes write stuff for the
  299. unexpanded machine :-) Making best
  300. use of the limited memory resources
  301. is part of the fun.
  302.  
  303. Q. What would you rate as your best
  304. achievement in programming terms?
  305.  
  306. A. In the 8-bit-world gunzip (a GZip
  307. and ZIP decompressor) surely loses to
  308. puzip.
  309.  
  310. Q. can you tell our readers about any
  311. other projects you are working on,
  312. and also maybe some of the past works
  313. you have created, also are these
  314. available to download?
  315.  
  316. A. I already mentioned some. Most if
  317. not all of my projects are available
  318. from my web pages. You can start
  319. browsing from
  320. http://www.iki.fi/a1bert/Dev/ .
  321.  
  322. Q. If you could change 3 things on
  323. the vic20 what would you change?
  324.  
  325. A. I'm only considering things that
  326. were probably realistic back them.
  327. Machine-level: 8kB of internal RAM
  328. instead of 5kB. VIC-I video/sound
  329. chip:
  330.  
  331. 1) Horizontal smooth scroll -- now
  332. horizontal positioning resolution is
  333. one cycle, which is 4 pixels
  334.  
  335. 2) 8 bits of frequency control for
  336. sound -- now 1 bit is used for on/off
  337. and 7 bits for frequency
  338.  
  339. 3) global multicolour mode bit, so
  340. that in hires-only mode you could
  341. use all 16 colours as character
  342. colours
  343.  
  344. Q. Do you program for any other
  345. systems, 8 bit or otherwise?
  346.  
  347. A. I started my 6502 assembly
  348. programming on the C64, but it seems
  349. VIC20 is enough right now. At work
  350. I'm programming our digital signal
  351. processor VSDSP in assembly and in C.
  352. After 11 years of assembly coding I'm
  353. slowly becoming good at it. :-)
  354.  
  355. --
  356.  
  357.